package cn.iluwen.airline.Mapper;

import cn.iluwen.airline.Entities.Administrator;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface AdminMapper {

    /**
     * 查询所有管理员
     * @return 管理员列表
     */
    @Select("SELECT * FROM administrators")
    List<Administrator> findAllAdmins();
    
    /**
     * 分页查询管理员
     * @return 管理员列表
     */
    @Select("SELECT * FROM administrators ORDER BY admin_id")
    List<Administrator> findAdminsWithPaging();
    
    /**
     * 根据用户名模糊查询管理员
     * @param username 用户名关键词
     * @return 管理员列表
     */
    @Select("SELECT * FROM administrators WHERE username LIKE CONCAT('%', #{username}, '%')")
    List<Administrator> findAdminsByUsernameLike(@Param("username") String username);

    /**
     * 根据ID查询管理员
     * @param adminId 管理员ID
     * @return 管理员对象
     */
    @Select("SELECT * FROM administrators WHERE admin_id = #{adminId}")
    Administrator findById(String adminId);

    /**
     * 根据用户名查询管理员
     * @param username 用户名
     * @return 管理员对象
     */
    @Select("SELECT * FROM administrators WHERE username = #{username}")
    Administrator findByUsername(String username);

    /**
     * 根据用户名和密码查询管理员
     * @param username 用户名
     * @param password 密码
     * @return 管理员对象
     */
    @Select("SELECT * FROM administrators WHERE username = #{username} AND password = #{password}")
    Administrator findByUsernameAndPassword(String username, String password);
} 